package com.coderman.infosys.plat.auth.common.exception;

import com.coderman.infosys.plat.auth.common.error.IError;

import java.text.MessageFormat;

/**
 * Description:
 * date: 2022/1/22
 *
 * @author shenshuai
 * @version 1.0.0
 * @since JDK 1.8
 */
public class ExceptionUtils {

    /**
     * @desc 对外统一暴漏一个打异常的接口
     * 适用于使用默认的IError实现类中的code,msg去打异常
     * @param error
     * @return
     * @throws ExceptionBase
     */
    public static ExceptionBase error(IError error) throws ExceptionBase {
        return new ExceptionBase(error.getErrorCode(),error.getErrorMsg());
    }

    /**
     * @desc 对外统一暴漏一个打异常的接口
     * 适用于使用默认的IError实现类中的code加上自定义的简短msg去打异常
     * @param error
     * @param msg
     * @return
     * @throws ExceptionBase
     */
    public static ExceptionBase error(IError error, String msg) throws ExceptionBase {
        return new ExceptionBase(error.getErrorCode(),msg);
    }
    
    

    /**
     * @desc 对外统一暴漏一个打异常的接口
     * 适用于使用默认的IError实现类中的code,带格式化的msg和传入的参数objects,进行消息格式化
     * @param error   error
     * @param objects objects
     * @return return
     * @throws ExceptionBase
     */
    public static ExceptionBase errorFormat(IError error, Object... objects) throws ExceptionBase {
        return new ExceptionBase(error.getErrorCode(), MessageFormat.format(error.getErrorMsg(), objects));
    }


}
